/***********************************************************************************
 * 文件名： btn_ctrl_static.h
 * 版本�?2
 * 说明�?
 * 		独立按钮控制器。扫描按钮，报告各种按钮事件。静态定义意味着只支�?个按钮，多个按钮�?
 *  使用 btn_ctrl 组件�?
 *      在合适的地方调用 Btn_Loop 确保其间�?0ms左右会被执行一次。当有按钮事件发生时，本组件
 *  会通过调用 Btn_Event 来进行通知，所以请在需要的地方实现 void Btn_Event(btn_ev_t e) �?
 *  数来接收按钮事件�?
 *      在文�?btn_ctrl_config.h 中进行合适的配置�?
 * 修改记录�?
 * 	2021/04/21: 初版�?刘言�?
 *  2021/05/12: 增加 Btn_IsDown()。刘言�?
***********************************************************************************/
#ifndef _BTN_CTRL_STATIC_H_
#define _BTN_CTRL_STATIC_H_

#include "a-btn_ctrl_config.h"
//#include "btn_ctrl_config.h"
#include "polsys.h"

typedef enum _btn_ev
{
    _BTN_EV_NULL,
    BTN_EV_DOWN,
    BTN_EV_UP,
    BTN_EV_CLICK,
    BTN_EV_CLICK_2,
    BTN_EV_CLICK_3,
    BTN_EV_CLICK_4,
    BTN_EV_CLICK_5,
    BTN_EV_LONG_PRESS,
    _BTN_EV_END
} btn_ev_t;

#ifdef _BTN_USE_IS_DOWN_FUNC
extern bit _Btn_mIsDown;
#endif

// 任务函数，这个函数必须按照要求定时调用（看作是线程入口）

// 间隔10ms调用
void Btn_Loop();

void Btn_Init();
void Btn_Init2();
// 提供的调用接�?

#ifdef _BTN_USE_IS_DOWN_FUNC
#define Btn_IsDown() _Btn_mIsDown
#endif

#endif
